package xjtu.sad.zbsj.dao.task;

import org.apache.ibatis.annotations.*;
import xjtu.sad.zbsj.task.publisher.entity.Task;

import java.util.List;
import java.util.Map;

@Mapper
public interface TaskDao {

    //添加任务
    @Insert("insert into t_task(task_id,publisher,template_id,task_title,task_require,task_desc,task_publish_time,task_limit_time,task_award,task_content_count,task_mark_count,task_status,task_kind,task_max_distribution,task_exception_time,low_exception_rate,middle_exception_rate,high_exception_rate) " +
            "values(#{taskId},#{publisher},#{templateId},#{taskTitle},#{taskRequire},#{taskDesc},#{taskPublishTime},#{taskLimitTime},#{taskAward},#{taskContentCount},#{taskMarkCount},#{taskStatus},#{taskKind},#{taskMaxDistribution},#{taskExceptionTime},#{lowExceptionRate},#{middleExceptionRate},#{highExceptionRate})")
    Integer addTask(Task task);

    //查询
    List<Task> findList();

    void delTask(String taskId);

    List<Map<String, Object>> taskList(String keyword, Integer userId);

    List<Map<String, Object>> drawList(@Param("taskId") String taskId, @Param("keyword") String keyword);

    void cancel(String drawId);

    void end(String taskId);

    void updateDrawSample(@Param("drawId") Integer drawId, @Param("sample") Integer sample);

    @Update("update t_mark set status = 'YTG' where draw_id = #{tdrawId} and status = 'DYS'")
    void updateMarkStatus(Integer tdrawId);

    @Select("select sample from t_draw where draw_id = #{tdrawId}")
    int getSampleNum(Integer tdrawId);

    @Update("update t_mark set status = 'BTG' where draw_id = #{drawId}")
    void updateMarkStatusBTG(Integer drawId);
}
